
import request from '@/utils/request'
import { otherFiltersItem } from '@/utils'
import { Message } from 'element-ui'

/**
 * 根据typeCode获取异常配置
 * @param {*} typeCode
 * @returns
 */
export function getConfigExceptionHandle(typeCode) {
  const data = new FormData()
  const filtersRaw = []
  filtersRaw.push(otherFiltersItem('typeCode', typeCode, '='))
  filtersRaw.push(otherFiltersItem('enable', 1, '='))
  data.append('filtersRaw', JSON.stringify(filtersRaw))
  return request({
    url: '/api/v1/configExceptionHandle/page',
    method: 'POST',
    data
  }).then(res => {
    let d = res.data.records || []
    if (d.length === 0) {
      return Promise.reject(res)
    }
    d = d[0]
    const obj = mainObj()
    obj.exceptionHandleId = d.id
    obj.functionModel = d.belongModel
    return [d, obj]
  }).catch(res => {
    Message.warning(`获取异常配置错误！异常配置编码：${typeCode}`)
    return Promise.reject(res)
  })
}

export function mainObj() {
  return {
    afterReviewTime: '', //	审核后时间
    bizCode: '', //	业务编码
    bizName: '', //	业务名称
    bpmInstanceNo: '', //	BPM实例号
    constCode: '', //	门店建设号
    exceptionCode: '', //	异常编码
    exceptionDesc: '', //	异常说明
    functionModel: '', // 所属模块
    exceptionHandleId: '', //	异常配置ID
    modelId: '', //	所属模块ID
    reviewAdvice: '', //	审核意见
    reviewResult: '', //	审核结果：0不通过1通过
    shopAttachmentDTOS: [], //	[]
    shopExceptionDetailDTOS: [] //	[]
  }
}

function detailObj() {
  return {
    afterAdjustTime: '', //	调整后时间
    afterReviewTime: '', //	审批后调整时间
    afterShopCode: '', //	调整后门店编码
    beforeAdjustTime: '', //	调整前时间
    beforeShopCode: '', //	调整前门店编码
    belongDuty: '', //	责任归属
    constRange: '', //	建设范围
    cutRegionArea: '', //	减少装修区域面积
    deductionDesc: '', //	扣款说明
    delayDay: '', //	延期天数
    exceptionDesc: '', //	异常描述
    expectEndTime: '', //	预计完工时间
    expectRestoreTime: '', //	预计恢复时间
    isRelateDeduction: '', //	是否涉及扣款：0否1是
    isSampleChange: '', //	是否涉及样品调整：0否1是
    picTaskCode: '', //	图纸任务号
    problemCategory: '', //	问题分类
    remark: '', //	备注
    shopChangeTime: '', //	门店调整时间
    shopExceptionId: '', //	门店异常ID
    solution: '', //	异常解决方案
    stockoutType: '', //	缺货类别
    stopReasonType: '', //	暂停原因类型
    stopTime: '' //	暂停时间
  }
}

export default {
  install(Vue) {
    Object.defineProperty(Vue.prototype, '$gsec', { value: getConfigExceptionHandle })
    Object.defineProperty(Vue.prototype, '$gsem', { value: mainObj })
    Object.defineProperty(Vue.prototype, '$gsed', { value: detailObj })
  }
}
